Domanda [rielaborazione]Script ( PER FANATICI DI DRAGON BALL )

Stato
Discussione chiusa ad ulteriori risposte.

Texas

Utente Silver
13 Marzo 2010
85
12
43
84
Partendo dal lavoro originariamente svolto da 1997, ho rielaborato il tutto a mio piacimento.

prima di tutto bisogna implementare le sfere del drago, quindi vi rimando a questo link:

http://www.cheatforge.net/community...833-mini-relase-inserire-sfere-del-drago.html

pero' visto che alcuni valori differiscono dovete inserire questa di query:

Codice:
INSERT INTO `item_proto` VALUES (80010, 'Radar Del Drago', 'Radar Del Drago', 18, 0, 0, 1, 0, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, 0, 0, 0);
INSERT INTO `item_proto` VALUES (80011, 'Sfera Del Drago N.1', 'Sfera Del Drago N.1', 18, 0, 0, 1, 0, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, 0, 0, 0);
INSERT INTO `item_proto` VALUES (80012, 'Sfera Del Drago N.2', 'Sfera Del Drago N.2', 18, 0, 0, 1, 0, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, 0, 0, 0);
INSERT INTO `item_proto` VALUES (80013, 'Sfera Del Drago N.3', 'Sfera Del Drago N.3', 18, 0, 0, 1, 0, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, 0, 0, 0);
INSERT INTO `item_proto` VALUES (80014, 'Sfera Del Drago N.4', 'Sfera Del Drago N.4', 18, 0, 0, 1, 0, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, 0, 0, 0);
INSERT INTO `item_proto` VALUES (80015, 'Sfera Del Drago N.5', 'Sfera Del Drago N.5', 18, 0, 0, 1, 0, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, 0, 0, 0);
INSERT INTO `item_proto` VALUES (80016, 'Sfera Del Drago N.6', 'Sfera Del Drago N.6', 18, 0, 0, 1, 0, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, 0, 0, 0);
INSERT INTO `item_proto` VALUES (80017, 'Sfera Del Drago N.7', 'Sfera Del Drago N.7', 18, 0, 0, 1, 0, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, 0, 0, 0);
Poi bisogna creare l'NPC

Lato server:
Codice:
INSERT INTO `mob_proto` VALUES (2292, 'Drago Shenron', 'Drago Shenron', 5, 1, 0, 70, '', 'NOMOVE', 0, '', 'STUN,SLOW,CURSE,TERROR', 0, '', 2, 0, 0, 0, 0, 0, 0, 3954, 3, 1, 0, 0, 5620, 79, 100, 100, 0, 2000, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
Da inserire in npclist.txt (CLIENT)
Codice:
2292    fire_dragon
A questo punto c'e' bisogno degli script:
creare all'interno della cartella Object la seguente sequenza di cartelle e file:
80011/use/alter_of_power.start
all'interno del file copiare questo:
Codice:
if pc . count_item ( 80011 ) >= 1 and
pc . count_item ( 80012 ) >= 1 and
pc . count_item ( 80013 ) >= 1 and
pc . count_item ( 80014 ) >= 1 and
pc . count_item ( 80015 ) >= 1 and
pc . count_item ( 80016 ) >= 1 and
pc . count_item ( 80017 ) >= 1 then
pc . give_item2 ( 80010 , 1 )
oh.spawnmob ( 2292 )
return
end
sempre nella cartella object bisogna creare le seguenti cartelle:
2292/chat/check_trans_ticket.zone_enter.0.arg
2292/chat/check_trans_ticket.zone_enter.0.script

La scritta nel file .arg decidetela voi
invece per il file .script dovete inserire questo:
Codice:
if pc . count_item ( 80010 ) == 1 then
say ( "Salve straniero" )
say ( "Hai a disposizione un desiderio" )
say ( "Dimmi cosa vuoi..." )
local s = input ()
local i = item_name ( s )
say_item ( item_name ( s ) , s , "" ) 
say ( "" )
say ( "e' questo quello che vuoi?" )
say ( "" )
say ( "" )
say ( "" )
say ( "" )
local b = select ( "si" , "no" )
if b == 2 then
return
elseif b == 1 then
pc . give_item ( " .. s .. " , s )
say ( "Hai ricevuto quello che hai chiesto" )
say ( "Addio!" )
wait ( )
pc . removeitem ( 80011 , 1 )
pc . removeitem ( 80012 , 1 )
pc . removeitem ( 80013 , 1 )
pc . removeitem ( 80014 , 1 )
pc . removeitem ( 80015 , 1 )
pc . removeitem ( 80016 , 1 )
pc . removeitem ( 80017 , 1 )
pc . removeitem ( 80010 , 1 )
npc.purge ( 2292 )
return 
elseif pc . count_item ( 80010 ) == 0 then
say ( "Non sei stato tu ad evocarmi" )
say ( "SPARISCI" )
pc . warp ( 1113300 , 53400 )
return
elseif b == 2 then
return
end
end
P.S. ho usato quei nomi per i file perche' e' con quelli che ho testato il tutto, poi voi fate come volete.

P.P.S. sicuramente e' migliorabile, anche perche' ci sono un paio di cose che non sono riuscito a fare,
per esempio, fare sparire il mob dopo un tot di tempo se non ci si clicca sopra, e fare il controllo se si scrive nell'input il valore di un item che non esiste nell'item_proto e sicuramente ho lasciato nello script qualche riga di troppo che pero' non influisce :)

Per finire se non volete fare tutto manualmente potete scaricarvi gli script qui:
object.rar
VirusTotal - Free Online Virus, Malware and URL Scanner

--- Aggiornamento Post ---

Come non detto! Mi ero dimenticato di testarlo da non GM e il comando per richiamare il mob non va :) ora vedo se ne trovo un'altro.
 
2292/chat/check_trans_ticket.zone_enter.0.arg
2292/chat/check_trans_ticket.zone_enter.0.script

Vuol dire che solo i trans possono avere il biglietto? :asd:

cmq potresti fare che il primo npc anzichè spawnarti il mob ti da un "richiamo" oppure mettere l npc temporizzato es. dopo 2 min sparisce da solo...
 
Ho rifatto gli script con alcuni aggiustamenti, questa volta funziona anche con chi non e' GM.
Ma la scelta del drago non e' delle migliori, graficamente ci sono problemi,
ovvero il mob appare conficcato nel terreno che guarda il cielo :D
ma se ci si allontana fino a farlo sparire e poi si torna indietro, tutto torna alla normalità.
Ho provato con la tartaruga e non ci sono problemi.

Questo e' quello nuovo che va nella cartella 80011/use/
Codice:
if pc . count_item ( 80011 ) >= 1 and
pc . count_item ( 80012 ) >= 1 and
pc . count_item ( 80013 ) >= 1 and
pc . count_item ( 80014 ) >= 1 and
pc . count_item ( 80015 ) >= 1 and
pc . count_item ( 80016 ) >= 1 and
pc . count_item ( 80017 ) >= 1 then
pc . give_item2 ( 80010 , 1 )
pc.give_item_from_special_item_group ( 88888 )
pc . removeitem ( 80011 , 1 )
pc . removeitem ( 80012 , 1 )
pc . removeitem ( 80013 , 1 )
pc . removeitem ( 80014 , 1 )
pc . removeitem ( 80015 , 1 )
pc . removeitem ( 80016 , 1 )
pc . removeitem ( 80017 , 1 )
return
end
Quest'altro invece va nel file .script nella cartella 2292/chat/
Codice:
if pc . count_item ( 80010 ) >= 1 then
say ( "Salve straniero" )
say ( "Hai a disposizione un desiderio" )
say ( "Dimmi cosa vuoi..." )
local s = input ()
local i = item_name ( s )
say_item ( item_name ( s ) , s , "" ) 
say ( "" )
say ( "e' questo quello che vuoi?" )
say ( "" )
say ( "" )
say ( "" )
say ( "" )
local b = select ( "si" , "no" )
if b == 2 then
return
elseif b == 1 then
pc . give_item ( " .. s .. " , s )
say ( "Hai ricevuto quello che hai chiesto" )
say ( "Addio!" )
wait ( )
pc . removeitem ( 80010 , 1 )
npc.purge ( 2292 )
return 
elseif pc . count_item ( 80010 ) == 0 then
say ( "Non sei stato tu ad evocarmi" )
say ( "SPARISCI" )
pc . warp ( 1113300 , 53400 )
return
elseif b == 2 then
return
end
end
C'e' bisogno anche di aggiungere nel file "special_item_group.txt" nella cartella hongkong o english questo:
Codice:
Group    ¿õ±ÍÁ·Àå¼Òȯ¼*                
{                    
    Vnum    88888            
    1    mob    2292    100    
}
 
Stato
Discussione chiusa ad ulteriori risposte.
Indietro
Top Bottom