Lo rimetto in atto io.
Ho messo lo script fatto da Dunkan e va alla grande volevo fare un check se gli HP sono al massimo o meno.
dovrebbe essere cosi:
BASE
PHP Code:
use uo;
use util;
use os;
use vitals;
include "include/client";
program textcmd_bendageself(who)
foreach item in EnumerateItemsInContainer(who.backpack)// questa funzione scorre tutti gli oggetti nel backpack.
if(item.objtype == 0x0e21) // se trova delle bende
Heal(who,item); // starta la funzione "HEAL" (non esiste, la creiamo noi!)
else // se non ci sono bende mando un messaggio e termino lo script
SendSysMessage(who,"Non hai bende manco sta volta, scemo de novo o_o'");
return;
endif
endforeach
endprogram
function Heal(pg,benda) // dichiaro la mia funzione
var healing := CInt(GetEffectiveSkill(pg, SKILLID_HEALING ) / 10 ); // divido l'healing del pg per 10. in questo modo ...
var healed := healing + RandomInt(50); // ... aggiungendo un valore random compreso tra 1 e 50, ho creato un algoritmo molto semplice per stabilire di quanto si curerà il pg.
SendSysMessage(pg, "You start to heal yourself.");
sleep(3); // delay di cura. l'ho messo fisso per non impicciarti troppo le idee, in realtà sarebbe diverso e terrebbe conto di piu fattori, come ad esempio se il pg viene colpito ( "your fingers slip...")
HealDamage(pg,healed); // curo i danni
SubtractAmount(benda, 1); // tolgo le bende usate ( NON mi sono preoccupato di creare quelle insanguinate volutamente. ti distrarrebbe dal capire il resto).
SendSysMessage(pg, "You healed " + healed + " damage.");
endfunction
Modificato da me come dovrbebe essere secondo me:
PHP Code:
function Heal(pg,benda) // dichiaro la mia funzione
var healing := CInt(GetEffectiveSkill(pg, SKILLID_HEALING ) / 10 ); // divido l'healing del pg per 10. in questo modo ...
var healed := healing + RandomInt(50); // ... aggiungendo un valore random compreso tra 1 e 50, ho creato un algoritmo molto semplice per stabilire di quanto si curerà il pg.
if(hp == hp_max)
SendSysMessage(pg, "Non hai bisogno di cure idiota.")
else
SendSysMessage(pg, "You start to heal yourself.");
sleep(3); // delay di cura. l'ho messo fisso per non impicciarti troppo le idee, in realtà sarebbe diverso e terrebbe conto di piu fattori, come ad esempio se il pg viene colpito ( "your fingers slip...")
HealDamage(pg,healed); // curo i danni
SubtractAmount(benda, 1); // tolgo le bende usate ( NON mi sono preoccupato di creare quelle insanguinate volutamente. ti distrarrebbe dal capire il resto).
SendSysMessage(pg, "You healed " + healed + " damage.");
endfunction
Ho messo hp == ho_max per esempio ma la funzione dovrrebbe essere cosi no?