Unmantained Guida [RELEASE]Cambia Razza + Fix "Bambini che tentano di usare arma sura su war/ninja"

Una guida contrassegnata come Unmantained contiene informazioni su un argomento obsoleto, non più utile o files non aggiornati da parte del creatore.
Stato
Discussione chiusa ad ulteriori risposte.

~ Mirro

Utente Electrum
7 Marzo 2012
459
26
110
199
Ultima modifica da un moderatore:
Codice:
quest Cambia_Razza begin state start begin
  when 20095.chat."Cambia Razza" begin
   say_title("Cambia Razza:")
   razza={{nome="Guerriero/a", value=4}, {nome="Ninja", value=5}, {nome="Sura", value=6}, {nome="Shamano/a", value=7}}
   armisura={
   190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
   240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
   250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
   260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
   280, 281, 282, 283, 284, 285, 286, 287, 288, 289
   }
   i=select(razza[1]["nome"], razza[2]["nome"], razza[3]["nome"], razza[4]["nome"], "Esci")
   if i == 5 then
    return
   end
   if i != 3 and pc.get_job() == 2 then
    say_title("Cambia Razza:")
    say_reward("*** CONTROLLO ARMA ***")
    for i2=1,table.getn(armisura) do
     if armisura[i2] == pc.get_weapon() then
      say("Beccato! Vuoi usare l'arma da sura su un altra razza! Levala grazie.")
      return
     end
    end
    say_reward("Controllo OK...")
   end
   if pc.get_sex() == 0 then
    pc.polymorph(razza[i]["value"])
    pc.change_sex()
    pc.clear_skill()
    pc.set_skill_group(o)
    pc.set_part(PART_HAIR, 0)
    say("Razza cambiata con successo, rilogga e prendi le nuove skill.")
   else
    pc.polymorph(razza[i]["value"])
    pc.change_sex()
    pc.clear_skill()
    pc.set_skill_group(o)
    pc.polymorph(20032)
    pc.polymorph(1)
    pc.change_sex()
    pc.clear_skill()
    pc.set_skill_group(o)
    pc.polymorph(20032)
    pc.set_part(PART_HAIR, 0)
    say("Razza cambiata con successo, rilogga e prendi le nuove skill.")
   end
  end
 end
end
 
Codice:
quest Cambia_Razza begin state start begin
  when 20095.chat."Cambia Razza" begin
   say_title("Cambia Razza:")
   razza={{nome="Guerriero/a", value=4}, {nome="Ninja", value=5}, {nome="Sura", value=6}, {nome="Shamano/a", value=7}}
   armisura={
   190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
   240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
   250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
   260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
   280, 281, 282, 283, 284, 285, 286, 287, 288, 289
   }
   i=select(razza[1]["nome"], razza[2]["nome"], razza[3]["nome"], razza[4]["nome"], "Esci")
   if i == 5 then
    return
   end
   if i != 3 and pc.get_job() == 2 then
    say_title("Cambia Razza:")
    say_reward("*** CONTROLLO ARMA ***")
    for i2=1,table.getn(armisura) do
     if armisura[i2] == pc.get_weapon() then
      say("Beccato! Vuoi usare l'arma da sura su un altra razza! Levala grazie.")
      return
     end
    end
    say_reward("Controllo OK...")
   end
   if pc.get_sex() == 0 then
    pc.polymorph(razza[i]["value"])
    pc.change_sex()
    pc.clear_skill()
    pc.set_skill_group(o)
    pc.set_part(PART_HAIR, 0)
    say("Razza cambiata con successo, rilogga e prendi le nuove skill.")
   else
    pc.polymorph(razza[i]["value"])
    pc.change_sex()
    pc.clear_skill()
    pc.set_skill_group(o)
    pc.polymorph(20032)
    pc.polymorph(1)
    pc.change_sex()
    pc.clear_skill()
    pc.set_skill_group(o)
    pc.polymorph(20032)
    pc.set_part(PART_HAIR, 0)
    say("Razza cambiata con successo, rilogga e prendi le nuove skill.")
   end
  end
 end
end
1) Stai usando variabili globali e non locali quindi incomincia ad usare local per il bene di tutti ahah
2) Gli stai facendo iterare quelle table per razza inutilmente (come callare pc.get_weapon 50 volte a click) in quanto basterebbe fare così:
Codice:
	if(pc.get_weapon()~=0)or(pc.get_armor()~=0)then
		say_reward("Puoi cambiare razza solo se non[ENTER]   hai alcuna arma/corazza equipaggiata.")
		--abio's pounding so hard
		--vari log aggiuntivi+return
		...
	end
3) Ecco un select (e non solo) un po' più decente: (senza considerare la o al posto dello 0)
Codice:
local a_w = {"war", "ninja", "sura", "shamy", "esci"}
local j_k = select_table(a_w)
if j_k==table.getn(a_w) then return end
--vari controlli (tipo quello nel punto sopra)
...
--cambio razza
pc.polymorph(3+j_k)
pc.change_sex() --senza considerare il sesso del personaggio
--reset capelli
pc.set_part(PART_HAIR, 0)
--reset dottrina
pc.clear_skill()
pc.set_skill_group(0)
--log
char_log(0,"Cambia_razza", "ATTENTION_WHORE")
--relog
say("Operazione effettuata con successo.")
say("Ora puoi riscegliere la tua dottrina.")
wait()
pc.warp(pc.get_x()*100, pc.get_y()*100)
 
Stato
Discussione chiusa ad ulteriori risposte.
Indietro
Top Bottom